package com.pan.admin.module.channel.dao;

import com.pan.admin.module.channel.entity.LoanChannelFormRateStatistic;
import com.pan.admin.module.channel.entity.LoanChannelRateStatistic;
import com.pan.admin.module.channel.entity.LoanChannelStatistic;
import com.pan.admin.module.channel.entity.qo.LoanChannelStatisticQO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * 渠道分析统计Dao接口
 *
 * @author ts
 * @date 2023-09-12
 */
@Mapper
public interface LoanChannelStatisticDao {

    /**
     * 根据渠道查询UV
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listUv(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询PV
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listPv(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据总UV
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listSumUv(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据总PV
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listSumPv(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询老用户数
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listUserOld(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询用户注册数
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listUserRegister(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询用户表单数
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listUserForm(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询用户贷超点击率
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listUserMarket(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道查询用户贷超点击率
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelStatistic> listMarketSum(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道注册率/表单率
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelRateStatistic> listBaseRate(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据总注册率/表单率总
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelRateStatistic> listBaseRateSum(LoanChannelStatisticQO loanChannelStatisticQO);

    /**
     * 根据渠道表单资质
     *
     * @param loanChannelStatisticQO
     * @return List
     */
    List<LoanChannelFormRateStatistic> listFormRate(LoanChannelStatisticQO loanChannelStatisticQO);
}
